iconSuiteResourceId ds.w 1 ; offset: $40 (64) ; resource id of the icon suite
reserved ds.w 1 ; offset: $42 (66)
theKind ds.l 1 ; offset: $44 (68)
theLabel ds.l 1 ; offset: $48 (72)
flags ds.l 1 ; offset: $4C (76)
reserved1 ds.l 1 ; offset: $50 (80)
reserved2 ds.l 1 ; offset: $54 (84)
reserved3 ds.l 1 ; offset: $58 (88)
sizeof EQU * ; size: $5C (92)
ENDR
ELSE
ISpNeed RECORD 0
name ds Str63 ; offset: $0 (0) ; human-readable string
iconSuiteResourceId ds.w 1 ; offset: $40 (64) ; resource id of the icon suite
playerNum ds.b 1 ; offset: $42 (66) ; used for multi-player support
group ds.b 1 ; offset: $43 (67) ; used to group related needs (eg, look left and look right button needs)
theKind ds.l 1 ; offset: $44 (68)
theLabel ds.l 1 ; offset: $48 (72)
flags ds.l 1 ; offset: $4C (76)
reserved1 ds.l 1 ; offset: $50 (80)
reserved2 ds.l 1 ; offset: $54 (84)
reserved3 ds.l 1 ; offset: $58 (88)
sizeof EQU * ; size: $5C (92)
ENDR
ENDIF ; USE_OLD_ISPNEED_STRUCT
kISpNeedFlag_NoMultiConfig EQU $00000001 ; once this need is autoconfigured to one device dont autoconfigure to anything else
kISpNeedFlag_Utility EQU $00000002 ; this need is a utility function (like show framerate) which would not typically be assigned to anything but the keyboard
kISpNeedFlag_PolledOnly EQU $00000004
kISpNeedFlag_EventsOnly EQU $00000008 ; *** kISpElementKind specific flags ***
; these are flags specific to kISpElementKind_Button
kISpNeedFlag_Button_AlreadyAxis EQU $10000000 ; there is a axis version of this button need
kISpNeedFlag_Button_ClickToggles EQU $20000000
kISpNeedFlag_Button_ActiveWhenDown EQU $40000000 ; these are flags specific to kISpElementKind_DPad
; these are flags specific to kISpElementKind_Axis
kISpNeedFlag_Axis_AlreadyButton EQU $10000000 ; there is a button version of this axis need
kISpNeedFlag_Axis_Asymetric EQU $20000000 ; this axis need is asymetric
; these are flags specific to kISpElementKind_Delta
kISpNeedFlag_Delta_AlreadyAxis EQU $10000000 ; there is a axis version of this delta need
;
; *
; * These are the current built values for ISpDeviceClass
; *
;
kISpDeviceClass_SpeechRecognition EQU 'talk'
kISpDeviceClass_Mouse EQU 'mous'
kISpDeviceClass_Keyboard EQU 'keyd'
kISpDeviceClass_Joystick EQU 'joys'
kISpDeviceClass_Wheel EQU 'whel'
kISpDeviceClass_Pedals EQU 'pedl'
kISpDeviceClass_Levers EQU 'levr'
kISpDeviceClass_Tickle EQU 'tckl' ; a device of this class requires ISpTickle
;
; * These are the current built in ISpElementKind's
; *
; * These are all OSTypes.
; *
;
kISpElementKind_Button EQU 'butn'
kISpElementKind_DPad EQU 'dpad'
kISpElementKind_Axis EQU 'axis'
kISpElementKind_Delta EQU 'dlta'
kISpElementKind_Movement EQU 'move'
kISpElementKind_Virtual EQU 'virt'
;
; *
; * These are the current built in ISpElementLabel's
; *
; * These are all OSTypes.
; *
;
IF USE_OLD_INPUT_SPROCKET_LABELS THEN
; axis
kISpElementLabel_XAxis EQU 'xaxi'
kISpElementLabel_YAxis EQU 'yaxi'
kISpElementLabel_ZAxis EQU 'zaxi'
kISpElementLabel_Rx EQU 'rxax'
kISpElementLabel_Ry EQU 'ryax'
kISpElementLabel_Rz EQU 'rzax'
kISpElementLabel_Gas EQU 'gasp'
kISpElementLabel_Brake EQU 'brak'
kISpElementLabel_Clutch EQU 'cltc'
kISpElementLabel_Throttle EQU 'thrt'
kISpElementLabel_Trim EQU 'trim' ; direction pad
kISpElementLabel_POVHat EQU 'povh'
kISpElementLabel_PadMove EQU 'move' ; buttons
kISpElementLabel_Fire EQU 'fire'
kISpElementLabel_Start EQU 'strt'
kISpElementLabel_Select EQU 'optn'
ENDIF ; USE_OLD_INPUT_SPROCKET_LABELS
; generic
kISpElementLabel_None EQU 'none' ; axis
kISpElementLabel_Axis_XAxis EQU 'xaxi'
kISpElementLabel_Axis_YAxis EQU 'yaxi'
kISpElementLabel_Axis_ZAxis EQU 'zaxi'
kISpElementLabel_Axis_Rx EQU 'rxax'
kISpElementLabel_Axis_Ry EQU 'ryax'
kISpElementLabel_Axis_Rz EQU 'rzax'
kISpElementLabel_Axis_Roll EQU 'rzax'
kISpElementLabel_Axis_Pitch EQU 'rxax'
kISpElementLabel_Axis_Yaw EQU 'ryax'
kISpElementLabel_Axis_RollTrim EQU 'rxtm'
kISpElementLabel_Axis_PitchTrim EQU 'trim'
kISpElementLabel_Axis_YawTrim EQU 'rytm'
kISpElementLabel_Axis_Gas EQU 'gasp'
kISpElementLabel_Axis_Brake EQU 'brak'
kISpElementLabel_Axis_Clutch EQU 'cltc'
kISpElementLabel_Axis_Throttle EQU 'thrt'
kISpElementLabel_Axis_Trim EQU 'trim'
kISpElementLabel_Axis_Rudder EQU 'rudd' ; delta
kISpElementLabel_Delta_X EQU 'xdlt'
kISpElementLabel_Delta_Y EQU 'ydlt'
kISpElementLabel_Delta_Z EQU 'zdlt'
kISpElementLabel_Delta_Rx EQU 'rxdl'
kISpElementLabel_Delta_Ry EQU 'rydl'
kISpElementLabel_Delta_Rz EQU 'rzdl'
kISpElementLabel_Delta_Roll EQU 'rzdl'
kISpElementLabel_Delta_Pitch EQU 'rxdl'
kISpElementLabel_Delta_Yaw EQU 'rydl' ; direction pad
kISpElementLabel_Pad_POV EQU 'povh'
kISpElementLabel_Pad_Move EQU 'move' ; buttons
kISpElementLabel_Btn_Fire EQU 'fire'
kISpElementLabel_Btn_SecondaryFire EQU 'sfir'
kISpElementLabel_Btn_Jump EQU 'jump'
kISpElementLabel_Btn_PauseResume EQU 'strt' ; kISpElementLabel_Btn_PauseResume automatically binds to escape
kISpElementLabel_Btn_Select EQU 'optn'
kISpElementLabel_Btn_SlideLeft EQU 'blft'
kISpElementLabel_Btn_SlideRight EQU 'brgt'
kISpElementLabel_Btn_MoveForward EQU 'btmf'
kISpElementLabel_Btn_MoveBackward EQU 'btmb'
kISpElementLabel_Btn_TurnLeft EQU 'bttl'
kISpElementLabel_Btn_TurnRight EQU 'bttr'
kISpElementLabel_Btn_LookLeft EQU 'btll'
kISpElementLabel_Btn_LookRight EQU 'btlr'
kISpElementLabel_Btn_LookUp EQU 'btlu'
kISpElementLabel_Btn_LookDown EQU 'btld'
kISpElementLabel_Btn_Next EQU 'btnx'
kISpElementLabel_Btn_Previous EQU 'btpv'
kISpElementLabel_Btn_SideStep EQU 'side'
kISpElementLabel_Btn_Run EQU 'quik'
kISpElementLabel_Btn_Look EQU 'blok'
;
; *
; * direction pad data & configuration information
; *
;
; typedef UInt32 ISpDPadData
kISpPadIdle EQU 0
kISpPadLeft EQU 1
kISpPadUpLeft EQU 2
kISpPadUp EQU 3
kISpPadUpRight EQU 4
kISpPadRight EQU 5
kISpPadDownRight EQU 6
kISpPadDown EQU 7
kISpPadDownLeft EQU 8
ISpDPadConfigurationInfo RECORD 0
id ds.l 1 ; offset: $0 (0) ; ordering 1..n, 0 = no relavent ordering of direction pads
fourWayPad ds.b 1 ; offset: $4 (4) ; true if this pad can only produce idle + four directions
ORG 6
sizeof EQU * ; size: $6 (6)
ENDR
;
; *
; * button data & configuration information
; *
;
; typedef UInt32 ISpButtonData
kISpButtonUp EQU 0
kISpButtonDown EQU 1
ISpButtonConfigurationInfo RECORD 0
id ds.l 1 ; offset: $0 (0) ; ordering 1..n, 0 = no relavent ordering of buttons
sizeof EQU * ; size: $4 (4)
ENDR
;
; *
; * axis data & configuration information
; *
;
; typedef UInt32 ISpAxisData
ISpAxisConfigurationInfo RECORD 0
symetricAxis ds.b 1 ; offset: $0 (0) ; axis is symetric, i.e. a joystick is symetric and a gas pedal is not
ORG 2
sizeof EQU * ; size: $2 (2)
ENDR
; typedef Fixed ISpDeltaData
ISpDeltaConfigurationInfo RECORD 0
reserved1 ds.l 1 ; offset: $0 (0)
reserved2 ds.l 1 ; offset: $4 (4)
sizeof EQU * ; size: $8 (8)
ENDR
ISpMovementData RECORD 0
xAxis ds.l 1 ; offset: $0 (0)
yAxis ds.l 1 ; offset: $4 (4)
direction ds.l 1 ; offset: $8 (8) ; ISpDPadData version of the movement
sizeof EQU * ; size: $C (12)
ENDR
kISpVirtualElementFlag_UseTempMem EQU 1
kISpElementListFlag_UseTempMem EQU 1
kISpFirstIconSuite EQU 30000
kISpLastIconSuite EQU 30100
kISpNoneIconSuite EQU 30000
; ********************* user level functions *********************